@@ -1,14 +1,47 @@ |
||
1 | 1 |
class AgentController < ApplicationController |
2 | 2 |
|
3 |
+ layout 'front_end' |
|
4 |
+ |
|
3 | 5 |
def current_missions |
4 | 6 |
|
5 | 7 |
end |
6 | 8 |
|
7 | 9 |
def choose_mission |
8 |
- |
|
10 |
+ @user = User.find(current_user.id) |
|
11 |
+ @mission_invites = @user.mission_agent_invites.where(:status => 'invited') |
|
9 | 12 |
end |
10 | 13 |
|
11 | 14 |
def agent_profile |
12 | 15 |
@user = User.find(params[:id]) |
13 | 16 |
end |
17 |
+ |
|
18 |
+ def accept_mission |
|
19 |
+ @user = User.find(current_user.id) |
|
20 |
+ @mission_invite = @user.mission_agent_invites.find(params[:id]) |
|
21 |
+ @mission_invite.status = 'accepted' |
|
22 |
+ respond_to do |format| |
|
23 |
+ if @mission_invite.save |
|
24 |
+ format.html { redirect_to mission_choose_path, notice: 'Mission was accepted.' } |
|
25 |
+ format.json { head :no_content } |
|
26 |
+ else |
|
27 |
+ format.html { redirect_to mission_choose_path, notice: 'Mission was not accepted. Please try again later.' } |
|
28 |
+ format.json { render json: @mission.errors, status: :unprocessable_entity } |
|
29 |
+ end |
|
30 |
+ end |
|
31 |
+ end |
|
32 |
+ |
|
33 |
+ def denie_mission |
|
34 |
+ @user = User.find(current_user.id) |
|
35 |
+ @mission_invite = @user.mission_agent_invites.find(params[:id]) |
|
36 |
+ @mission_invite.status = 'denied' |
|
37 |
+ respond_to do |format| |
|
38 |
+ if @mission_invite.save |
|
39 |
+ format.html { redirect_to mission_choose_path, notice: 'Mission was denied.' } |
|
40 |
+ format.json { head :no_content } |
|
41 |
+ else |
|
42 |
+ format.html { redirect_to mission_choose_path, notice: 'Mission was not denied. Please try again later.' } |
|
43 |
+ format.json { render json: @mission.errors, status: :unprocessable_entity } |
|
44 |
+ end |
|
45 |
+ end |
|
46 |
+ end |
|
14 | 47 |
end |
@@ -3,4 +3,6 @@ class User < ActiveRecord::Base |
||
3 | 3 |
# :confirmable, :lockable, :timeoutable and :omniauthable |
4 | 4 |
devise :database_authenticatable, :registerable, |
5 | 5 |
:recoverable, :rememberable, :trackable, :validatable |
6 |
+ |
|
7 |
+ has_many :mission_agent_invites |
|
6 | 8 |
end |
@@ -1,2 +1,22 @@ |
||
1 |
-<h1>Agent#choose_mission</h1> |
|
2 |
-<p>Find me in app/views/agent/choose_mission.html.erb</p> |
|
1 |
+<div class="page-header"> |
|
2 |
+ <h1>Choose your Missions </h1> |
|
3 |
+</div> |
|
4 |
+<ul class="thumbnails"> |
|
5 |
+<% @mission_invites.each do |invite| %> |
|
6 |
+ <li class="span4"> |
|
7 |
+ <div class="thumbnail" style= "padding: 5px;"> |
|
8 |
+ <h3 style= "padding: 5px;"><%= invite.mission_agent.mission.title %></h3> |
|
9 |
+ <p style= "padding: 5px; height: 50px;"><%= invite.mission_agent.mission.description %></p> |
|
10 |
+ <div style="width: 48%; float: left;"> |
|
11 |
+ <%= link_to 'accept', mission_agent_accept_path(invite.id), :class => "btn btn-large btn-block btn-success" %> |
|
12 |
+ </div> |
|
13 |
+ <div style="width: 48%; float: right;"> |
|
14 |
+ <%= link_to 'Denie', mission_agent_denie_path(invite.id), :class => "btn btn-large btn-block btn-danger" %> |
|
15 |
+ </div> |
|
16 |
+ <div class="clearfix"></div> |
|
17 |
+ </div> |
|
18 |
+ |
|
19 |
+ |
|
20 |
+ </li> |
|
21 |
+<% end %> |
|
22 |
+</ul> |
@@ -1,6 +1,7 @@ |
||
1 | 1 |
<ul class="nav"> |
2 | 2 |
<% if user_signed_in? %> |
3 | 3 |
<li><%= link_to "Missions", missions_path %></li> |
4 |
+ <li><%= link_to "Choose Missions", mission_choose_path %></li> |
|
4 | 5 |
<% else %> |
5 | 6 |
<li><%= link_to "About", start_about_path %></li> |
6 | 7 |
|
@@ -1,7 +1,9 @@ |
||
1 | 1 |
AvalancheGame::Application.routes.draw do |
2 | 2 |
get "start/about" |
3 | 3 |
get "agent/current_missions" |
4 |
- get "agent/choose_mission" |
|
4 |
+ get "choose_missions" => "agent#choose_mission", :as => :mission_choose |
|
5 |
+ get "accept_mission/:id" => "agent#accept_mission", :as => :mission_agent_accept |
|
6 |
+ get "denie_mission/:id" => "agent#denie_mission", :as => :mission_agent_denie |
|
5 | 7 |
get "agent/:id" => "agent#agent_profile" |
6 | 8 |
|
7 | 9 |
get "missions/:id/launch" => "missions#launch", :as => :mission_launch |